#ifndef __MY_MESSAGE_HPP__
#define __MY_MESSAGE_HPP__

#include "level.hpp"
#include "util.hpp"
#include <iostream>
#include <string>
#include <thread>

namespace logs
{
    /*
        日志消息类
        描述一条消息应该所具备的基本属性字段
        系统时间，线程ID，日志器名称，文件名，行号，日志等级，日志消息
        实现功能：
            1.实现构造函数，成功构造一个日志消息对象
    */
    struct LogMsg
    {
        size_t _ctime;//系统时间
        std::thread::id _id;//线程ID
        std::string _name;//日志器名称
        std::string _file;//文件名
        size_t _line;//行号
        LogLevel::value _level;//日志等级
        std::string _payload;//日志消息

        LogMsg(const std::string& name,const std::string& file,size_t line,LogLevel::value level,std::string&& payload)
            :_ctime(util::Date::now())
            ,_id(std::this_thread::get_id())
            ,_name(name)
            ,_file(file)
            ,_line(line)
            ,_level(level)
            ,_payload(payload)
        {}
    };
}


#endif